home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / amiga / uae-0.7.0b2 / config.h < prev    next >
Text File  |  1998-01-20  |  7KB  |  176 lines

  1.  /* 
  2.   * UAE - The Un*x Amiga Emulator
  3.   * 
  4.   * User configuration options
  5.   *
  6.   * Copyright 1995, 1996 Bernd Schmidt
  7.   */
  8.  
  9. /*
  10.  * Please note: Many things are configurable with command line parameters,
  11.  * and you can put anything you can pass on the command line into a 
  12.  * configuration file ~/.uaerc. Please read the documentation for more
  13.  * information.
  14.  * 
  15.  * NOTE NOTE NOTE
  16.  * Whenever you change something in this file, you have to "make clean"
  17.  * afterwards.
  18.  * Don't remove the '#' signs. If you want to enable something, move it out
  19.  * of the C comment block, if you want to disable something, move it inside
  20.  * the block.
  21.  */
  22.  
  23. /*
  24.  * Note to porters:
  25.  * In an ideal world, all users can compile their own versions of UAE and
  26.  * select the options they need. Since hardly anyone has a C compiler for
  27.  * DOS, Windows or Macs, that's not possible. If you want to do your users
  28.  * a favour, please distribute two different versions of UAE:
  29.  *
  30.  * 1. A fast one: NO_EXCEPTION_3 and NO_PREFETCH_BUFFER
  31.  * 2. A more compatible one: sound, exception 3 and prefetch emulated.
  32.  *
  33.  * None of these should be a "default" version, since both have different
  34.  * problems.
  35.  *
  36.  * I know it's a pain, but it's your own fault if you don't use a real OS
  37.  * that comes with a C compiler ;)
  38.  */
  39.  
  40. /*
  41.  * CPU level: 0 = 68000, 1 = 68010, 2 = 68020, 3 = 68020/68881
  42.  * If configured for 68020, the emulator will be a little slower.
  43.  */
  44. #define CPU_LEVEL 3
  45.  
  46. /*
  47.  * When these two are enabled, a subset of the ECS features is emulated.
  48.  * Actually, it's only the chip identification and big blits. This may be
  49.  * enough to persuade some ECS programs to run.
  50.  * DON'T enable SuperHires or Productivity modes. They are not emulated,
  51.  * and will look very messy. NTSC doesn't work either.
  52.  * OS versions 2.0+ don't like ECS_DENISE at the moment.
  53. #define ECS_DENISE
  54.  */
  55. #define ECS_AGNUS
  56.  
  57. /*
  58.  * When USE_COMPILER is defined, a m68k->i386 instruction compiler will be
  59.  * used. This is experimental. It has only been tested on a Linux/i386 ELF
  60.  * machine, although it might work on other i386 Unices.
  61.  * This is supposed to speed up application programs. It will not work very
  62.  * well for hardware bangers like games and demos, in fact it will be much
  63.  * slower. It can also be slower for some applications and/or benchmarks.
  64.  * It needs a lot of tuning. Please let me know your results with this.
  65.  * The second define, RELY_ON_LOADSEG_DETECTION, decides how the compiler 
  66.  * tries to detect self-modifying code. If it is not set, the first bytes
  67.  * of every compiled routine are used as checksum before executing the
  68.  * routine. If it is set, the UAE filesystem will perform some checks to 
  69.  * detect whether an executable is being loaded. This is less reliable
  70.  * (it won't work if you don't use the harddisk emulation, so don't try to
  71.  * use floppies or even the RAM disk), but much faster.
  72.  *
  73.  * @@@ NOTE: This option is unfortunately  broken in this version. Don't
  74.  * try to use it. @@@
  75.  *
  76. #define USE_COMPILER
  77. #define RELY_ON_LOADSEG_DETECTION
  78.  */
  79.  
  80. /*
  81.  * Set USER_PROGRAMS_BEHAVE to 1 or 2 to indicate that you are only running
  82.  * non-hardware banging programs which leave all the dirty work to the
  83.  * Kickstart. This affects the compiler. Any program that is _not_ in the ROM
  84.  * (i.e. everything but the Kickstart) will use faster memory access 
  85.  * functions.
  86.  * There is of course the problem that the Amiga doesn't really distinguish
  87.  * between user programs and the kernel. Not all of the OS is in the ROM,
  88.  * e.g. the parallel.device is on the disk and gets loaded into RAM at least
  89.  * with Kickstart 1.3 (don't know about newer Kickstarts). So you probably
  90.  * can't print, and some other stuff may also fail to work.
  91.  * A useless option, really, given the way lots of Amiga software is written.
  92. #define USER_PROGRAMS_BEHAVE 0
  93.  */
  94.  
  95. /***************************************************************************
  96.  * Operating system/machine specific options
  97.  * Configure these for your CPU. The default settings should work on any
  98.  * machine, but may not give optimal performance everywhere.
  99.  * (These don't do very much yet, except HAVE_RDTSC)
  100.  */
  101.  
  102. /*
  103.  * This option enables a different planar->chunky conversion routine. It may
  104.  * work slightly faster on some machines, it will work a lot slower on others,
  105.  * and it will crash most RISC machines.
  106.  * It seems to be a win on the Pentium. No idea about other x86's.
  107.  */
  108. #define UNALIGNED_PROFITABLE
  109.  
  110. /*
  111.  * Define this on PPro's, K6's and maybe other non-x86 CPUs.
  112. #define MULTIPLICATION_PROFITABLE
  113.  */
  114.  
  115. /*
  116.  * PPros don't like branches. With this option, UAE tries to avoid them in some
  117.  * places.
  118. #define BRANCHES_ARE_EXPENSIVE
  119.  */
  120.  
  121. /*
  122.  * Define this option if you have a very fast Pentium or another x86 CPU that
  123.  * understands the RDTSC instruction. When enabled, it will make sure that the
  124.  * frame rate does not exceed 50Hz. This will give slightly more speed to the
  125.  * CPU emulation. On slow systems (say, worse than a P166), you don't have to
  126.  * worry about the frame rate being too high anyway unless you run only boring
  127.  * WB-based stuff.
  128. #define HAVE_RDTSC
  129.  */
  130.  
  131. /***************************************************************************
  132.  * Support for broken software. These options are set to default values
  133.  * that are reasonable for most uses. You should not need to change these.
  134.  */
  135.  
  136. /*
  137.  * Unfortunately, there are people who think it's way k00l to play stupid
  138.  * tricks with the MC68000, the CPU of the Amiga. Enable this option to
  139.  * emulate the prefetch buffer. You don't have to know what a prefetch buffer
  140.  * is, you should know however that it's needed for better compatibility and
  141.  * that emulating it makes the emulator somewhat slower.
  142.  */
  143. #define NO_PREFETCH_BUFFER
  144.  
  145. /*
  146.  * Some STUPID programs access a longword at an odd address and expect to
  147.  * end up at the routine given in the vector for exception 3.
  148.  * (For example, Katakis does this). And yes, I know it's legal, but it's dumb
  149.  * anyway.
  150.  * If you leave this commented in, memory accesses will be faster,
  151.  * but some programs may fail for an obscure reason.
  152.  */
  153. #define NO_EXCEPTION_3
  154.  
  155. /*
  156.  * If you want to see the "Hardwired" demo, you need to define this.
  157.  * Otherwise, it will say "This demo don't like Axel" - apparently, Axel
  158.  * has a 68040.
  159.  * NEWS FLASH! My sources tell me that "Axel" stands for accelerator. Not
  160.  * that it really matters...
  161. #define WANT_SLOW_MULTIPLY
  162.  */
  163.  
  164. /*
  165.  * This variable was introduced because a program could do a Bcc from
  166.  * whithin chip memory to a location whitin expansion memory. With a
  167.  * pointer variable the program counter would point to the wrong location.
  168.  * With this variable unset the program counter is always correct, but
  169.  * programs will run slower (about 4%).
  170.  * Usually, you'll want to have this defined.
  171.  * @@@ Does anyone know a program that doesn't work with this? I'd like
  172.  * to remove this option.
  173.  */
  174. #define USE_POINTER
  175.  
  176.